#include "Matrix3.hpp"
#include "Matrix4.hpp"
#include "Quaternion.hpp"

namespace ge {

//----------------------------------------------------------------------------//
// Matrix3
//----------------------------------------------------------------------------//

const Matrix3 Matrix3::Zero( 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f );
const Matrix3 Matrix3::Identity( 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f );

//----------------------------------------------------------------------------//
inline Matrix3::Matrix3( const Matrix4& _m )
{
     Set( _m );
}
//----------------------------------------------------------------------------//
inline Matrix3::Matrix3( const Quaternion& _q )
{
     _q.ToRotationMatrix( *this );
}
//----------------------------------------------------------------------------//
inline Matrix3& Matrix3::Set( const Matrix4& _m )
{
     return Set( _m.m00, _m.m01, _m.m02, _m.m10, _m.m11, _m.m12, _m.m20, _m.m21, _m.m22 );
}
//----------------------------------------------------------------------------//
inline Matrix3& Matrix3::Set( const Quaternion& _q )
{
     return _q.ToRotationMatrix( *this );
}
//----------------------------------------------------------------------------//

//----------------------------------------------------------------------------//
//
//----------------------------------------------------------------------------//

} // namespace ge
